gdk: When using OPERATOR_SOURCE, use clip + paint instead of fill
authorBenjamin Otte <otte@redhat.com>
Fri, 13 Aug 2010 23:46:04 +0000 (01:46 +0200)
committerBenjamin Otte <otte@redhat.com>
Fri, 13 Aug 2010 23:46:04 +0000 (01:46 +0200)
SOURCE is unbounded, so we clear unwanted areas.

gdk/gdkwindow.c

index e8e3723b010bed97f0f7300df7718a7291a26067..43242944cc18723d8c50e58abd5ee3da53a96eb6 100644 (file)
@@ -2831,11 +2831,12 @@ gdk_window_end_implicit_paint (GdkWindow *window)
 
       /* Some regions are valid, push these to window now */
       cr = gdk_cairo_create (private->impl);
+      gdk_cairo_region (cr, paint->region);
+      cairo_clip (cr);
       gdk_cairo_set_source_pixmap (cr, paint->pixmap,
                                    paint->x_offset, paint->y_offset);
       cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
-      gdk_cairo_region (cr, paint->region);
-      cairo_fill (cr);
+      cairo_paint (cr);
       cairo_destroy (cr);
     }